perm filename BYTE.FAI[LCS,MUS] blob sn#007345 filedate 1972-02-08 generic text, type T, neo UTF8
00100	; ****** BYTE *******   GETS AND STORES 18-BIT NUMBERS.
00200	TITLE BYTE
00300		INTERNAL UNPACK,IPACK,GETFI2,FASTI2
00320	
00500	; CALL UNPACK(IBOT1(K),SR,SL)
00600	UNPACK:	0
00680		HRRE 1,@(16)	; GET RIGHT HALF
00690		FSC  1,233	; FLOAT IT
00700		MOVEM 1,@1(16)
00720		HLRE 1,@(16)	; GET LEFT HALF
00725		FSC  1,233	; FLOAT IT
00740		MOVEM 1,@2(16)
00760		JRA  16,3(16)
01400	
01500	;K=IPACK(NL,NR)   REPACK TWO HALF WORDS.
01600	IPACK:	0
01700		HRL @(16)
01800		HRR @1(16)
01900		JRA 16,2(16)
01950	
02000	;******** NEXT READS MTA0 OR DSK AND WRITES AAAAA.DMD ON DSK:
02100		INTERNAL MTA1,MTA0,TOTAPE,INMTA1,FSTMUS,PUTMUS,FINMUS
02150	; MTA0,TOTAPE AND PUTMUS,FSTMUS USE CH2 AND END WITH FINMUS.
02175	; MTA1,INMTA1 USE CH3.  GETFI2,FASTI2 USE CH.
02200	
02300		CH←12
02400		CH2←11
02450		CH3←13
02500		BLKS←=1
02600	REGS:	BLOCK 20
02602	
02605	;CALL GETFIL(<FILE>)
02611	
02617	GETFI2:	0
02623		MOVE 0,@0(16)
02629		MOVEM 0,FILNAM
02635		JSA 16,INTFI2
02641		MOVE 0,[SIXBIT/DMD/]
02647		MOVEM 0,DIR+1
02653		JSA 16,LKUP
02659		SKIPA
02665		JRST GETF3
02671		SETZM DIR+1
02677		JSA 16,LKUP
02683		0
02689	GETF3:	JRA 16,1(16)
02690	
02700	;CALL PUTMUS(<FILE>)
02800	
02900	PUTMUS:	0	;USES FSTMUS,FINMUS, CH2. WRITES ON 2314. 
03000		MOVE 0,@0(16)
03100		MOVEM 0,FILNAM
03200		JSA 16,INTFIL
03300		MOVE 0,[SIXBIT/DMD/]
03400		MOVEM 0,DIR+1
03500		SETZM DIR+2
03600		SETZM DIR+3
03700		ENTER CH2,DIR
03800		0
03900		JRA 16,1(16)
04100	
04200	;CALL FSTMUS(<ARRAY>,<NO. OF WORDS>)
04300	
04400	FSTMUS:	0
04500		HRRZ 0,0(16)
04600		SUBI 0,1
04700		MOVEM 0,COM
04800		MOVN 0,@1(16)
04900		HRLM 0,COM
05000		OUTPUT CH2,COM
05100		STATZ CH2,740000
05200		0
05300		JRA 16,2(16)
05400	
05405	INTFI2:	0
05410		MOVEI REGS
05415		BLT REGS+3
05420		INIT CH,17
05421		SIXBIT/DSK/
05422		0
05423		0
05425		JRST DSKX
05430	
05435	LKUP:	0
05437		SETZM DIR+2
05439		SETZM DIR+3
05441		LOOKUP CH,DIR
05443		JRA 16,0(16)
05445		JRA 16,1(16)
05447	
05449	DIR:	BLOCK 4
05451	
05455	;CALL FASTI2(<ARRAY>,<NO. WORDS>)
05457	
05459	FASTI2:	0
05461		HRRZ 0,0(16)
05463		SUBI 0,1
05465		MOVEM 0,COM
05467		MOVN 0,@1(16)
05469		HRLM 0,COM
05471		INPUT CH,COM
05473		STATZ CH,740000
05475		0
05477		JRA 16,2(16)
05479	
05500	INTFIL:	0	;INITS DSK 
05600		MOVEI REGS
05700		BLT REGS+3
05800		INIT CH2,17
05900		SIXBIT/DSK/
06000		0
06100		0
06200	DSKX:	MOVE 0,FILNAM#
06300		MOVEM 0,FN#
06400		MOVE 1,[POINT 7,FN]
06500	INTF3:	MOVE 2,[POINT 6,DIR]
06600		SETZM DIR
06700		MOVEI 3,5
06800	INTF1:	ILDB 0,1
06900		CAIN 0," "
07000		JRST INTF2
07100		SUBI 0,40
07200		IDPB 0,2
07300		SOJG 3,INTF1
07400	INTF2:	HRLZI REGS
07500		BLT 3
07600		JRA 16,0(16)
07700	;CALL MTA1
07800	
07900	MTA1:	0	;USES INTAP OR TOTAPE, CH3.  READS OR WRITES MTA1.
08000		INIT CH3,617
08100		SIXBIT/MTA1/
08200		0
08300		HALT
08400		JRA 16,0(16)
08500	
08600	;CALL INTAPE(<ARRAY>,<NO.OF WORDS>)  READS MAGTAPE 1
08700	
08800	INMTA1:	0
08900		HRRZ 0,0(16)
09000		SUBI 0,1
09100		MOVEM 0,COM
09200		MOVN 0,@1(16)
09300		HRLM 0,COM
09400		INPUT CH3,COM
09500		STATZ CH3,740000
09600		0
09700		JRA 16,2(16)
09710	
09714	TOTAPE:	0
09718		HRRZ 0,0(16)
09722		SUBI 0,1
09726		MOVEM 0,COM
09730		MOVN 0,@1(16)
09734		HRLM 0,COM
09738		OUTPUT CH2,COM
09742		STATZ CH2,740000
09746		0
09750		JRA 16,2(16)
09754	
09758	;CALL MTA0
09762	
09766	MTA0:	0	;USES INTAP OR TOTAPE, CH.  READS OR WRITES MTA0.
09770		INIT CH2,617
09774		SIXBIT/MTA0/
09778		0
09782		HALT
09786		JRA 16,0(16)
09790	
09800	
09900	COM:	OCT 0,0
10000	COM1:	0
10100	BLKNUM:	0
10200	
10300	;CALL FINMUS
10400	FINMUS:	0
10500		CLOSE CH2,0
10600		STATZ CH2,740000
10700		0
10800		RELEASE CH2,0
10900		JRA 16,0(16)
11000	
11100	END